package com.ynr.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.ynr.voucher.model.InvoiceModel;

public interface IInvoiceDao {

	public List<Map<String, Object>> getPendingInvoice();
	
	public int insertInvoiceDetailInfo(@Param("invoiceDetailInfoMap")Map<String, Object> invoiceDetailInfoMap, @Param("filePath")String filePath, @Param("recStatus")int recStatus, @Param("manualAudit")int manualAudit, @Param("billDate")String billDate);
	
	public int insertInvoiceEmpty(@Param("invoice")InvoiceModel invoice);
	
	public int insertInvoiceBasicInfo(@Param("invoiceBasicInfoMap")Map<String, Object> invoiceBasicInfoMap, @Param("filePath")String filePath, @Param("recStatus")int rec_status, @Param("billDate")String billDate);
	
	public int insertInvoiceItem(@Param("goodsList")List<Map<String, Object>> goodsList, @Param("invoiceId")long invoiceId);

	public int updateInvoiceDetailInfo(@Param("invoiceDetailInfoMap")Map<String, Object> invoiceDetailInfoMap, @Param("recStatus")int recStatus, @Param("manualAudit")int manualAudit, @Param("invoiceId")long invoiceId);

	public List<Map<String, Object>> getUnrecognizedInvoices();

	public int deleteInvoice(@Param("invoiceId")long invoiceId);

	public List<Map<String, Object>> getInvoiceByCompanyIdAndBillDate(@Param("companyId")String companyId, @Param("billDate")String billDate);

	public List<Map<String, Object>> getItemByInvoiceId(@Param("invoiceId")long invoiceId);
}